---
title: Rules of Engagement
hide_title: true
---

import {
	AdvancedMarkdown,
	Aside,
	BuildConfigTool,
	Badge,
	BuildinfoIntroduction,
	BuildinfoBuildHelp,
	Card,
	CardGrid,
	Charts,
	Details,
	FileTree,
	GithubActions,
	Icon,
	LinkCard,
	Modal,
	Patchinfo,
	Scriptinfo,
	ScriptVersions,
	Steps,
	TabItem,
	Tabs
} from "/src/components/global.jsx"

⭐ The rules of engagement are:

<Steps>

1. ### Use Docker

    - Docker is the recommended method for building with the script.
    - This avoids many potential issues and conflicts with the host system, especially with Qt.

2. ### Use Alpine

    - Alpine is the main supported system; Debian is for testing and fallback.
    - You do not need to build on an older host to use these binaries there.

3. ### Privileges

    - `sudo` or `root` privileges are not required to run the script.
    - They are only required to install core dependencies if they are missing.

4. ### Additional flags and switches

    - Can add dependencies on demand that will need to be installed.
    - For example, `-c` for CMake and `-cd` for cache dependencies.
    - The script will require you to install these on demand.
    - Using `.qbt_env` or setting variables before running the script will handle this automatically.

5. ### Passing no arguments

    - `qbt-nox-static.bash` <Badge text="Recommended" variant="tip" /> - will make no changes and instead provide information on what you need to do.
    - `qbittorrent-nox-static.sh` <Badge text="Legacy" variant="caution" /> - will automatically install the required dependencies and configure the build environment.

6. ### Nothing is built until...

    - You provide the `all` argument or a specific module name as a positional parameter to the script.
    - This applies to both `qbt-nox-static.bash` and `qbittorrent-nox-static.sh`.

7. ### Use the help

    - Use `bash ~/qbt.bash -h` to see the help.
    - This applies to both `qbt-nox-static.bash` and `qbittorrent-nox-static.sh`.

8. ### Fork the repo

    - Build on GitHub using GitHub Actions to create your own custom releases.
    - This is the easiest way to get custom builds for your needs.

</Steps>
